package com.ckg.test;

import com.ckg.dao.BookDao;
import com.ckg.service.BookService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class LibraryApp {
    public static void main(String[] args) {
        // 任务1：创建容器（使用类路径方式）
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        // 任务2：用三种方式获取BookDao实例
        // 方式1：按名称获取（需强转）
        BookDao bookDao1 = (BookDao) ctx.getBean("bookDao");
        bookDao1.save();

        // 方式2：按名称+类型获取
        BookDao bookDao2 = ctx.getBean("bookDao", BookDao.class);
        bookDao2.save();

        // 方式3：按类型获取
        BookDao bookDao3 = ctx.getBean(BookDao.class);
        bookDao3.save();

        // 任务3：获取BookService并调用saveBook()
        BookService bookService = ctx.getBean(BookService.class);
        bookService.saveBook();

        // 观察初始化时机（延迟加载效果）
    }
}